#ifndef __BSP_UART_H__
#define __BSP_UART_H__

#include "pinctrl.h"
#include "soc_osal.h"
#include "gpio.h"
#include "uart.h"
typedef struct  
{
    double Sx;
    double Sy;
    double Sz;
    double Jx;
    double Jy;
    double Jz;
    double speed;
}Attitude;


// 串口通信控制接口
/**
 * @brief  初始化串口通信设备。
 * @param  [in] uart_bus 需要初始化的UART设备， 参考 @ref uart_bus_t 。
 * @param  [in] baudrate 串口波特率。
 * @param  [in] uart_buffer_config 串口缓冲区配置结构体指针，参考 @ref uart_buffer_config_t 。
 * @retval ERRCODE_SUCC 成功。
 * @retval Other        失败，参考 @ref errcode_t 。
 */
errcode_t bsp_uart_init(uart_bus_t uart_bus, uint32_t baudrate, uart_buffer_config_t *uart_buffer_config);

/**
 * @brief  通过串口发送数据。
 * @param  [in] uart_bus 串口总线，参考 @ref uart_bus_t 。
 * @param  [in] buf      要发送的数据缓冲区。
 * @param  [in] len      要发送的数据长度。
 * @retval 成功发送的数据字节数 成功。
 * @retval 0 失败。
 */
errcode_t bsp_uart_send_data(uart_bus_t uart_bus, const uint8_t *buf, uint32_t len);

/**
 * @brief  注册串口接收处理函数。
 * @param  [in] uart_bus 串口总线，参考 @ref uart_bus_t 。
 * @param  [in] callback 接收处理函数，参考 @ref uart_rx_callback_t 。
 * @retval ERRCODE_SUCC 成功。
 * @retval Other        失败，参考 @ref errcode_t 。
 */
errcode_t bsp_uart_register_rx(uart_bus_t uart_bus, uart_rx_callback_t callback);

//void uart_attitude(Attitude* data ,const unsigned char* data1);
#endif // !__BSP_UART_H__
